# -*-coding:utf-8 -*- #
# ---------------------------------------------------------------------------
# ProjectName:   test62
# FileName:      data_type.py
# Author:       lao_zhao
# Datetime:     2024/7/29 14:16
# Description:
# 
# ---------------------------------------------------------------------------


"""
    数值：整形int, 浮点数float
    字符串：str
    列表：list
    元组：tuple
    字典：dict
    集合：set

    其他：
        空：None
        bool类型：True/False
        range序列
"""
"""
    可变类型和不可变类型：
        可变类型：值发生变化，内存地址不变的数据类型为可变类型. === 列表，字典，集合
        不可变类型：值发生改变，内存地址也发生改变的数据类型为不可变类型。=== 数值，字符串，元组
    
    可迭代类型和不可迭代类型：
        可迭代类型：有__iter__()魔法方法。=== 列表，字典，集合，字符串，元组, range序列
        不可迭代类型: 没有__iter__()魔法方法。=== 数值
        
    有序和无序：
        有序：可以使用下标操作 === 字符串，列表， 元组， 字典(3.7以后)
        无序：无法使用下标操作 === 数值，集合
        
    值类型和引用类型
        值类型就是python中的不可变类型。=== 数值，字符串，元组
        引用类型就是python中可变类型。=== 列表，字典，集合
"""

'''
list1 = [1, 2, 3]
dict1 = {"a": 100}
set1 = {1, 2, 3}

print(f"更改之前的内存地址:{id(set1)}, 值为：{set1}")
set1.add("hello")
print(f"更改之后的内存地址:{id(set1)}, 值为：{set1}")
'''

'''
i1 = 100
f1 = 3.14
s1 = "python"
t1 = (1, 2, 3)

print(f"更改之前的内存地址:{id(t1)}, 值为：{t1}")
list1 = list(t1)
list1[0] = 100
t1 = tuple(list1)
print(f"更改之后的内存地址:{id(t1)}, 值为：{t1}")
'''

'''
s1 = "abcaf"
l1 = [1, 2]
t1 = (1, 2)
d1 = {1: 2}
set1 = {1, 2, 3}


res = s1.__iter__()
print(res, type(res))
print(res.__next__())
print(res.__next__())
print(res.__next__())
# l1.__iter__()
# t1.__iter__()
# d1.__iter__()
# set1.__iter__()

r = range(10)
r.__iter__()
print(r[0])
'''

